package com.example.interfacecall.domain;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

@Data
public class ClaimsResultNoticeDto {
    /**
     * appkey
     */
    @NotBlank(message = "appkey不能为空！")
    @JSONField(name = "appkey")
    private String appKey;

    /**
     * 请求时间
     */
    @NotNull(message = "请求时间不能为空！")
    @JSONField(name = "timestamp")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date timestamp;

    /**
     * 业务流水号
     */
    @NotBlank(message = "业务流水号不能为空！")
    @JSONField(name = "applyno")
    private String applyNo;

    /**
     * 保函编号
     */
    @NotBlank(message = "保函编号不能为空！")
    @JSONField(name = "baohanno")
    private String baoHanNo;

    /**
     * 赔付状态，1待赔付2已赔付3不予赔付9其他
     */
    @NotBlank(message = "赔付状态不能为空！")
    @JSONField(name = "compensatestatus")
    private String compensateStatus;

    /**
     * 备注，不予赔付和其他需要说明理由
     */
    @JSONField(name = "compensateremark")
    private String compensateRemark;

    /**
     * 赔付人名称
     */
    @NotBlank(message = "赔付人名称不能为空！")
    @JSONField(name = "compensatename")
    private String compensateName;

    /**
     * 赔付人统一社会信用代码证号
     */
    @NotBlank(message = "赔付人统一社会信用代码证号不能为空！")
    @JSONField(name = "compensateorgnum")
    private String compensateOrgNum;

    /**
     * 赔付人联系人
     */
    @NotBlank(message = "赔付人联系人不能为空！")
    @JSONField(name = "compensatecontact")
    private String compensateContact;

    /**
     * 赔付人联系人手机号
     */
    @NotBlank(message = "赔付人联系人手机号不能为空！")
    @JSONField(name = "compensatecontacttel")
    private String compensateContactTel;

    /**
     * 赔付银行账号
     */
    @NotBlank(message = "赔付银行账号不能为空！")
    @JSONField(name = "compensatebankcode")
    private String compensateBankCode;

    /**
     * 赔付银行开户行
     */
    @NotBlank(message = "赔付银行开户行不能为空！")
    @JSONField(name = "compensateopenbank")
    private String compensateOpenBank;

    /**
     * 受益人名称
     */
    @NotBlank(message = "受益人名称不能为空！")
    @JSONField(name = "favoreename")
    private String favoreeName;

    /**
     * 受益人统一社会信用代码
     */
    @NotBlank(message = "受益人统一社会信用代码不能为空！")
    @JSONField(name = "favoreeorgnum")
    private String favoreeOrgNum;

    /**
     * 受益人联系人
     */
    @NotBlank(message = "受益人联系人不能为空！")
    @JSONField(name = "favoreecontact")
    private String favoreeContact;

    /**
     * 受益人联系人手机号
     */
    @NotBlank(message = "受益人联系人手机号不能为空！")
    @JSONField(name = "favoreecontacttel")
    private String favoreeContactTel;

    /**
     * 受益人银行账号
     */
    @NotBlank(message = "受益人银行账号不能为空！")
    @JSONField(name = "favoreebankcode")
    private String favoreeBankCode;

    /**
     * 受益人银行开户行
     */
    @NotBlank(message = "受益人银行开户行不能为空！")
    @JSONField(name = "favoreeopenbank")
    private String favoreeOpenBank;

    /**
     * 赔偿金额，单位元
     */
    @NotBlank(message = "赔偿金额不能为空！")
    @JSONField(name = "compensateamount")
    private String compensateAmount;

    /**
     * 报文签名
     */
    @NotBlank(message = "报文签名不能为空！")
    @JSONField(name = "sign")
    private String sign;
}
